package cn.pconline.officialclub.entity;

import cn.pconline.autoclub.util.EncodeUtils;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang.StringUtils;

/**
 * 实体的帮忙类，注意，一定要很通用才放在这里
 *
 * @author <a href="mailto:chensy0203@163.com">chensy</a>
 */
public abstract class EntityKit {

    /**
     * 把实体转换为json结构：注意，不需要转换的字段要加上注解
     *
     * 如果只是应用内部使用的接口，建议直接用这个方法返回，如里是提供外部调用的，建议单独写明需要的字段
     *
     * @JSONField(deserialize = false, serialize = false)
     *
     * @param isEncode
     * @return
     */
    public JSONObject toJson(boolean isEncode) {
        JSONObject o = (JSONObject) JSONObject.toJSON(this);
        if (isEncode) {
            for (String key : o.keySet()) {
                Object v = o.get(key);
                if (v != null && v instanceof String) {
                    o.put(key, EncodeUtils.encodeForHTMLFilterNull(key));
                }
            }
        }
        return o;
    }

    /**
     * 支持1024和原图的转换
     *
     * @param url
     * @param size width x height
     * @return
     */
    protected String convertImage(String url, String size) {
        if (StringUtils.isBlank(url)) {
            return url;
        }
        if (url.lastIndexOf("_1024x1024") != -1) {
            return url.replace("_1024x1024", "_" + size);
        } else {
            int dot = url.lastIndexOf(".");
            return url.substring(0, dot) + "_" + size + url.substring(dot, url.length());
        }
    }
}
